<?php

/*
 * Copyright (c) 2007-2009 Carlos Romel Pereira da Silva <carlos.romel@gmail.com>
 * Copyright (c) 2007 Eliana Fernandes <eliana@elodata.com.br>
 */

class Conexao {

    static $usuario_login;
    static $senha_login;

    static function obterConexao() {

        $SGBD = "mysql";
        $usuario = "emaus";//"e209645admin";
        $senha = "emausmaster";
        $servidor = "localhost";//"mysql-e";
        $porta = "3306";
        $banco = "emaus";//"e209645_emaus";
        $DSN = "$SGBD://$usuario:$senha@$servidor:$porta/$banco";

        $conexao = DB::connect($DSN);

        if (! DB::isError($conexao)) {

            $conexao->setFetchMode(DB_FETCHMODE_ASSOC);
            return $conexao;

        } else {

            echo DB::errorMessage($conexao);

        }
    }

    static function executarSQL($SQL) {

        $resultado = Conexao::obterConexao()->query($SQL);

        if (! DB::isError($resultado)) {

            return $resultado;
        } else {

            echo DB::errorMessage($resultado);
            echo "[$SQL]";
        }
        $resultado->free();
        Conexao::obterConexao()->disconnect();
    }

    static function obterDados($SQL, $JSON = FALSE) {

        $resultado = Conexao::obterConexao()->getAll($SQL);

        if (! DB::isError($resultado)) {

            if ($JSON) {
                foreach ($resultado as $rownum => $registro) {

                    foreach ($registro as $indice => $valor) {
                        $arrCodificado[$rownum][$indice] = utf8_encode($valor);
                    }
                }

                return json_encode($arrCodificado);

            } else {

                return $resultado;
            }

        } else {

            echo DB::errorMessage($resultado);
            echo "<hr>[$SQL]<hr>";
        }
        $resultado->free();
        Conexao::obterConexao()->disconnect();
    }
    
    function autenticar() {

        $modelo = new HTML_Template_IT();
        $modelo->loadTemplateFile("modelo/login.html");

        Base::mostrarDataSistema($modelo);

        if ($_REQUEST["usuario_login"]) {

              Conexao::$usuario_login = (String) $_REQUEST["usuario_login"];
        } else if ($_SESSION["usuario_login"]) {

              Conexao::$usuario_login = (String) $_SESSION["usuario_login"];
        } else {

              Conexao::$usuario_login = "";
        }

        if ($_REQUEST["senha_login"]) {

              Conexao::$senha_login = (String) $_REQUEST["senha_login"];
        } else if ($_SESSION["senha_login"]) {

              Conexao::$senha_login = (String) $_SESSION["senha_login"];
        } else {

              Conexao::$senha_login = "";
        }

        $sucesso = false;
        $SQL     = "select u.des_login     as usuario,
                           u.des_senha     as senha,
                           p.nom_pessoa    as nom_pessoa_usuario
                      from ems_usuario u
                               inner join ems_pessoa p
                                   on u.cod_pessoa_usuario = p.cod_pessoa
                    where u.des_login = '" . Conexao::$usuario_login . "'
                       and u.des_senha = '" . md5(Conexao::$senha_login) . "'";

        if (Conexao::$usuario_login and Conexao::$senha_login) {

            $resultado = Conexao::executarSQL($SQL);

            if (! DB::isError($resultado)) {

                if ($resultado->numRows()) {

                    $registro = $resultado->fetchRow();
                    $nome     = explode(" ", $registro["nom_pessoa_usuario"]);
                    $sucesso  = true;

                    $_SESSION["usuario_login"]           = Conexao::$usuario_login;
                    $_SESSION["senha_login"]             = Conexao::$senha_login;
                    $_SESSION["nome_pessoa_usuario"]     = $registro["nom_pessoa_usuario"];
                    $_SESSION["primeiro_nome"]           = $nome[0];
                } else {

                    $modelo->setVariable("mensagem", "Usu�rio ou senha inv�lidos");
                    $modelo->show();
                }
            } else {
                echo DB::errorMessage($resultado);
            }
            $resultado->free();
        } else {

            $modelo->setVariable("mensagem", "Usu�rio ou senha Não informados");
            $modelo->show();
        }
        
        return $sucesso;
    }

    static function obterID() {

        $id = "mysql_insert_id()";
        
        return $id;
    }
}
?>
